package com.vnl.system.aaa.util;

import java.text.DecimalFormat;

import org.vnl.platform.dk.util.SEVERITY;


public enum AAErrCode {
    
    /**
     * 沒有設定使用那個IAAService實作
     */
    AA_ENV_SETUP_ERROR_IAASERVICE_NOT_SET(SEVERITY.EXCEPTION),
    AA_ENV_SETUP_ERROR_ICOMPANYSERVIE_NOT_SET(SEVERITY.EXCEPTION),
    AA_ENV_SETUP_ERROR_IENTITYCREATOR_NOT_SET(SEVERITY.EXCEPTION),
    /**
     * 此實作不支援此操作
     */
    AA_IMPLMENTATION_NOT_SUPPORT(SEVERITY.EXCEPTION),
    /**
     * 編程方式不正確 {0} 原因
     */
    AA_CODING_INCORRECT(SEVERITY.EXCEPTION),
    /**
     * 使用者不存在,無法登入
     */
    LOGIN_ERR_USER_NOT_EXIST(SEVERITY.FAIL),
    /**
     * 超過一個公司使用同樣的company Id
     * 0-> companyId
     */
    MORE_THAN_ONE_COMPANY_WITH_SAME_COMPANY_ID(SEVERITY.EXCEPTION),
    /**
     * 公司內超過一個使用者具有使用同樣的login id 及 type
     * 0->login id
     */
    MORE_THAN_ONE_USER_WITH_SAME_LOGIN_ID_AND_TYPE(SEVERITY.EXCEPTION),
    /**
     * 公司不存在
     */
    COMPANY_NOT_EXIST(SEVERITY.FAIL),
    /**
     * 使用者不存在
     */
    USER_NOT_EXIST(SEVERITY.FAIL),
    /**
     * 使用者密碼不正確
     * 0->
     */
    USER_PASSWORD_INCORRECT(SEVERITY.ERROR);

    SEVERITY severity;
    
    AAErrCode(SEVERITY severity) {
        this.severity = severity;
    }
    
    @Override
    public String toString() {
        StringBuffer sb = new StringBuffer("AA");
        DecimalFormat df = new DecimalFormat("0000");
        sb.append(df.format(this.ordinal()));
        return sb.toString();
    }
    
    public String getSeverityString() {
        return this.severity.toString();
    }
    
    public SEVERITY getSeverity() {
        return this.severity;
    }
    
    public static void main(String[] args) throws Exception {
    	AAErrCode[] codes = AAErrCode.values();
    	for (int ii=0; ii<codes.length; ii++) {
    		System.out.println("#"+codes[ii].name());
    		System.out.println(codes[ii].toString()+"="+codes[ii].toString()+"\n");
    	}
    }
}
